9139d9919ece9745db2e9dbffcdbf4dc23628af6,src/main/java/io/vertx/proton/impl/ProtonReceiverImpl.java,ProtonReceiverImpl,drain,#number#,53
Before Change
}
public ProtonReceiver drain(int credit) {
getReceiver().drain(credit);
return this;
}
After Change
throw new IllegalStateException("Manual credit management not available while prefetch is non-zero");
}
if (completionHandler == null) {
throw new IllegalArgumentException("A completion handler must be provided");
}
if (drainCompleteHandler != null) {
throw new IllegalStateException("A previous drain operation has not yet completed");
}
if ((getCredit() - getQueued()) <= 0) {
// We have no remote credit
if (getQueued() == 0) {
// All the deliveries have been processed, drain is a no-op, nothing to do but complete.
completionHandler.handle(Future.succeededFuture());
} else {
// There are still deliveries to process, wait for them to be.
setDrainHandlerAndTimeoutTask(timeout, completionHandler);
}
} else {
setDrainHandlerAndTimeoutTask(timeout, completionHandler);
getReceiver().drain(0);
flushConnection();
}